Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>NumPy</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/NumPy"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-NumPy rootpage-NumPy skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">NumPy</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><table class="float-right infobox toccolours toptextcells" style="border-spacing:5px; font-size:90%; text-align:left; width:21em;">

<tbody><tr>
<th colspan="2" class="hintergrundfarbe6" style="font-size:105%; text-align:center;">NumPy
<p class="mw-empty-elt">
</p>
</th></tr>
<tr>
<td colspan="2" class="notheme" style="text-align:center; background-color:#f8f9fa;"><span typeof="mw:File"></span>
</td></tr>
<tr>
<th colspan="2" class="hintergrundfarbe5" style="font-size:105%; text-align:center;">Basisdaten
<p class="mw-empty-elt">
</p>
</th></tr>
<tr>
<td><b><a href="Maintainer" title="Maintainer">Hauptentwickler</a></b>
</td>
<td>Das NumPy-Team
</td></tr>
<tr>
<td><b><a href="Softwareentwickler" title="Softwareentwickler">Entwickler</a></b>
</td>
<td>Travis Oliphant
</td></tr>
<tr>
<td><b>Erscheinungsjahr</b>
</td>
<td>1995 (als Numeric); 2006 (als NumPy)
</td></tr>
<tr>
<td><b>Aktuelle&nbsp;<a href="Version_(Software)" title="Version (Software)">Version</a></b>
</td>
<td><span class="wikidata-content">2.3.5<sup id="cite_ref-_75e60f9e614fc8c5_1-0" class="reference"><a href="#cite_note-_75e60f9e614fc8c5-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup></span> <br> (<span class="wikidata-content">16. November 2025</span>)
</td></tr>
<tr>
<td><b><a href="Betriebssystem" title="Betriebssystem">Betriebssystem</a></b>
</td>
<td><a href="Plattformunabh%C3%A4ngigkeit" title="Plattformunabhängigkeit">plattformübergreifend</a>
</td></tr>
<tr>
<td><b><a href="Programmiersprache" title="Programmiersprache">Programmier­sprache</a></b>
</td>
<td><span class="wikidata-content"><a href="Python_(Programmiersprache)" title="Python (Programmiersprache)">Python</a>, <a href="C_(Programmiersprache)" title="C (Programmiersprache)">C</a><sup id="cite_ref-_0155ee18ddc18b74_2-0" class="reference"><a href="#cite_note-_0155ee18ddc18b74-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>, <a href="Fortran" title="Fortran">Fortran</a></span>
</td></tr>
<tr>
<td><b>Kategorie</b>
</td>
<td><a href="Numerische_Mathematik" title="Numerische Mathematik">Numerische</a> <a href="Programmbibliothek" title="Programmbibliothek">Bibliothek</a> für <a href="Wissenschaftliches_Rechnen" title="Wissenschaftliches Rechnen">wissenschaftliches Rechnen</a>
</td></tr>
<tr>
<td><b>Lizenz</b>
</td>
<td><span class="wikidata-content"><a href="3-Klausel-BSD-Lizenz" class="mw-redirect" title="3-Klausel-BSD-Lizenz">3-Klausel-BSD</a><sup id="cite_ref-_8e9d8db5bb94b487_3-0" class="reference"><a href="#cite_note-_8e9d8db5bb94b487-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup></span>
</td></tr>
<tr>
<td class="hintergrundfarbe5" colspan="2" style="text-align:center;"><a rel="nofollow" class="external text" href="https://numpy.org/">numpy.org</a>
</td></tr></tbody></table>
<p><b>NumPy</b> ist eine <a href="Programmbibliothek" title="Programmbibliothek">Programmbibliothek</a> für die Programmiersprache <a href="Python_(Programmiersprache)" title="Python (Programmiersprache)">Python</a>, die eine einfache Handhabung von <a href="Vektor" title="Vektor">Vektoren</a>, <a href="Matrix_(Mathematik)" title="Matrix (Mathematik)">Matrizen</a> oder generell großen mehrdimensionalen <a href="Feld_(Datentyp)" class="mw-redirect" title="Feld (Datentyp)">Arrays</a> ermöglicht.
Neben den <a href="Datenstruktur" title="Datenstruktur">Datenstrukturen</a> bietet NumPy auch effizient implementierte <a href="Funktion_(Programmierung)" title="Funktion (Programmierung)">Funktionen</a> für <a href="Numerische_Mathematik" title="Numerische Mathematik">numerische</a> Berechnungen an.<sup id="cite_ref-Nature_4-0" class="reference"><a href="#cite_note-Nature-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p><p>Der Vorgänger von NumPy, <i>Numeric</i>, wurde unter Leitung von Jim Hugunin entwickelt. Travis Oliphant gliederte modifizierte Funktionalitäten des Konkurrenten <i>Numarray</i> in Numeric ein und veröffentlichte dies 2005 als NumPy. Die Bibliothek ist <a href="Open_Source" title="Open Source">quelloffen</a> und wird von vielen Mitwirkenden weiterentwickelt.
</p>

<div class="mw-heading mw-heading2"><h2 id="Merkmale">Merkmale</h2></div>
<p>Der für Python standardmäßig installierte Interpreter <a href="CPython" class="mw-redirect" title="CPython">CPython</a> führt Kommandos als unoptimierten <a href="Bytecode" title="Bytecode">Bytecode</a> aus. Mathematische <a href="Algorithmus" title="Algorithmus">Algorithmen</a> sind in dieser Python-Variante oft langsamer als eine äquivalente <a href="Compiler" title="Compiler">kompilierte</a> Umsetzung. NumPy stellt hier eine performante Alternative dar. Bestehende iterative Algorithmen müssen dazu gegebenenfalls für mehrdimensionale Array-Operationen umgeschrieben werden. NumPys Operatoren und Funktionen sind optimiert für derartige Arrays und ermöglichen so eine besonders effiziente Evaluation.
</p><p>Die Handhabung von NumPy-Arrays in Python ist damit vergleichbar zu <a href="Matlab" title="Matlab">MATLAB</a>; beide ermöglichen eine schnelle Ausführung von Algorithmen, solange diese für ganze Arrays oder Matrizen statt einzelne <a href="Variable_(Programmierung)" title="Variable (Programmierung)">Skalare</a> konzipiert sind. Die Integration von NumPy in Python ermöglicht die Verwendung und Kombination mit vielen weiteren Paketen aus dem umfangreichen Python-Umfeld. Weitere MATLAB-ähnliche Funktionen bietet die Python-Bibliothek <a href="SciPy" title="SciPy">SciPy</a>. Auch der Funktionsumfang der <a href="Matplotlib" title="Matplotlib">Matplotlib</a>-Bibliothek zur einfachen Erstellung von Plots in Python ist den Möglichkeiten von MATLAB sehr ähnlich. Intern verwenden sowohl MATLAB als auch NumPy die beiden Programmbibliotheken <a href="Basic_Linear_Algebra_Subprograms" title="Basic Linear Algebra Subprograms">BLAS</a> und <a href="LAPACK" title="LAPACK">LAPACK</a> für eine effiziente Berechnung <a href="Lineare_Algebra" title="Lineare Algebra">linearer Algebra</a>.
</p><p>Die Python-<a href="Programmierschnittstelle" title="Programmierschnittstelle">Schnittstelle</a> des weit verbreiteten <a href="Maschinelles_Sehen" class="mw-redirect" title="Maschinelles Sehen">Computer-Vision</a>-Pakets <a href="OpenCV" title="OpenCV">OpenCV</a> verwendet intern NumPy-Arrays zur Verarbeitung von Daten. Bilder mit mehreren Farbkanälen werden beispielsweise mit dreidimensionalen Arrays dargestellt. Indexierung, Slicing oder Maskierung mit anderen Arrays sind daher sehr effiziente Methoden um gezielt auf bestimmte Pixel zugreifen zu können. NumPy-Arrays als universelle Datenstruktur für Bilder, extrahierte <a href="Interest-Operator" title="Interest-Operator">Feature-Punkte</a>, <a href="Faltungsmatrix" title="Faltungsmatrix">Faltungsmatrizen</a> und vieles mehr erleichtern die Entwicklung und das <a href="Debugger" title="Debugger">Debugging</a> von Algorithmen zur <a href="Bildverarbeitung" title="Bildverarbeitung">Bildverarbeitung</a>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Die_ndarray-Datenstruktur">Die ndarray-Datenstruktur</h3></div>
<p>Die Kernfunktionalität von NumPy basiert auf der <a href="Datenstruktur" title="Datenstruktur">Datenstruktur</a> „ndarray“ (<i>n</i>-dimensionales Array), die auch als „NumPy Array“ bezeichnet wird. Dessen wesentliche Bestandteile sind ein <a href="Zeiger_(Informatik)" title="Zeiger (Informatik)">Zeiger</a> auf einen zusammenhängenden <a href="Speicherbereich" title="Speicherbereich">Speicherbereich</a> zusammen mit <a href="Metadaten" title="Metadaten">Metadaten</a>, welche die darin gespeicherten Daten beschreiben:<sup id="cite_ref-cise_5-0" class="reference"><a href="#cite_note-cise-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Nature_4-1" class="reference"><a href="#cite_note-Nature-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p>

<dl><dt>Datentyp</dt>
<dd>Anders als in Pythons eigener <i>List</i>-Datenstruktur sind NumPy-Arrays homogen <a href="Typisierung_(Informatik)" title="Typisierung (Informatik)">typisiert</a>: Alle Elemente eines Arrays müssen vom selben <a href="Datentyp" title="Datentyp">Datentyp</a> sein.</dd>
<dt>Form (engl.&nbsp;<i>shape</i>)</dt>
<dd>Definiert die Dimensionen in jeder Indexausprägung („Achse“) des Arrays und die Anzahl der Achsen (bzw.&nbsp;Indizes).</dd>
<dt>Schrittlängen (engl.&nbsp;<i>strides</i>)</dt>
<dd>Die Schrittlängen beschreiben für jede Achse, wie viele <a href="Byte" title="Byte">Bytes</a> man im linearen Speicher springen muss, wenn ein zu dieser Achse gehöriger Index um 1 erhöht wird, zum Beispiel um zwischen zwei Zeilen oder zwei Spalten zu springen.</dd></dl>
<p>Diese Arrays erlauben es außerdem, von <a href="Allokation_(Informatik)" title="Allokation (Informatik)">allozierten</a> <a href="Puffer_(Informatik)" title="Puffer (Informatik)">Puffern</a> anderer Sprachen zu lesen, ohne Daten kopieren zu müssen. Mit <a href="C_(Programmiersprache)" title="C (Programmiersprache)">C</a>/<a href="C%2B%2B" title="C++">C++</a>-, <a href="Cython" title="Cython">Cython</a>- oder <a href="Fortran" title="Fortran">Fortran</a>-Erweiterungen des CPython-Interpreters können so auch einfach weitere bestehende Numerikbibliotheken mitverwendet werden. Dieses Verhalten wird beispielsweise von SciPy genutzt, welches <a href="Wrapper_(Software)" title="Wrapper (Software)">Wrapper</a> für externe Bibliotheken wie <a href="Basic_Linear_Algebra_Subprograms" title="Basic Linear Algebra Subprograms">BLAS</a> oder <a href="LAPACK" title="LAPACK">LAPACK</a> bereitstellt. NumPy bietet native Unterstützung für <a href="Memory_Mapping" title="Memory Mapping">Memory Mapping</a> der ndarrays.<sup id="cite_ref-cise_5-1" class="reference"><a href="#cite_note-cise-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Einschränkungen"><span id="Einschr.C3.A4nkungen"></span>Einschränkungen</h3></div>
<p>Tatsächliches Einfügen oder Anhängen von Array-Einträgen wie bei Pythons Listen ist nicht möglich. Die Funktion <code>np.pad()</code>, mit der Arrays erweitert werden können, legt neue Arrays gewünschter Größe an, kopiert bestehende hinein und liefert dies zurück. Auch bei der Aneinanderreihung zweier Arrays mit <code>np.concatenate([a1,a2])</code> werden die Arrays nicht wirklich verkettet, sondern ein neues zusammenhängendes Array zurückgegeben. Bei NumPys Funktion <code>np.reshape()</code> ist eine Umformung auch nur möglich, wenn sich die Anzahl der Array-Einträge nicht ändert. Diese Einschränkungen sind darauf zurückzuführen, dass NumPy-Arrays im Speicher als zusammenhängender Bereich angelegt werden müssen. Das Blaze-<a href="Framework" title="Framework">Framework</a> bietet hier eine Alternative, welches diese Einschränkung beheben soll.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>
</p><p>Die Verwendung von NumPy-Arrays allein gegenüber Python-Listen bringt noch keinen Geschwindigkeitsvorteil mit sich. Entsprechende Algorithmen müssen zunächst in eine vektortaugliche Form umgeschrieben werden. Dies kann von Nachteil sein, da eventuell temporäre Arrays in Größe der Eingabe angelegt werden müssen und sich damit die Speicherkomplexität von konstant zu linear vergrößert. Eine <a href="Laufzeit_(Informatik)" title="Laufzeit (Informatik)">Laufzeitkompilation</a> wurde schon in einigen Paketen implementiert, um diese Probleme zu vermeiden. <a href="Open_Source" title="Open Source">Open-Source</a>-Lösungen, die mit NumPy interagieren können, sind unter anderem numexpr<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> und Numba.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>
Außerdem gibt es mit <a href="Cython" title="Cython">Cython</a> noch eine statisch kompilierbare Alternative.
</p><p>NumPy Arrays werden den Anforderungen bei der Verarbeitung <a href="Big_Data" title="Big Data">großer Datenmengen</a> und denen des <a href="Deep_Learning" title="Deep Learning">Deep Learnings</a> oftmals nicht gerecht. Zum Beispiel lädt NumPy die in den Arrays enthaltenen Daten komplett in den <a href="Arbeitsspeicher" title="Arbeitsspeicher">Arbeitsspeicher</a> eines Computers, dessen Kapazität von wissenschaftlichen Datensätzen aber oft überschritten wird. Viele Deep Learning-Anwendungen wurden erst dadurch ermöglicht, dass die dafür notwendigen Operationen der linearen Algebra auf <a href="Rechnerverbund" title="Rechnerverbund">Rechnerverbünden</a> mit spezieller, hochparalleler Hardware wie <a href="Grafikkarte" title="Grafikkarte">Grafikkarten</a> und <a href="Tensor_Processing_Unit" title="Tensor Processing Unit">Tensor-Prozessoren</a> verlagert wurden, NumPy aber für die Berechnung auf dem <a href="Prozessor" title="Prozessor">Prozessor</a> und auf einzelnen Computer konzipiert wurde. Um diese Herausforderungen zu meistern, sind viele alternative Array-Implementierungen für Python erschienen, wie zum Beispiel Dask<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> zum <a href="Parallele_Programmierung" title="Parallele Programmierung">parallelen Rechnen</a> auf Rechnerverbünden und <a href="TensorFlow" title="TensorFlow">TensorFlow</a> und JAX<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> für Berechnungen auf Grafikkarten. Der Einfluss NumPys wird daran deutlich, dass diese Bibliotheken meistens eine NumPy-ähnliche <a href="Programmierschnittstelle" title="Programmierschnittstelle">Programmierschnittstelle</a> oder eine Untermenge davon zur Verfügung stellen, um Anfängern den Umstieg zu erleichtern und eine Änderung der Array-Implementierung mit nur minimalen Änderungen am Programmquelltext zu ermöglichen.<sup id="cite_ref-Nature_4-2" class="reference"><a href="#cite_note-Nature-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Beispiele">Beispiele</h2></div>
<dl><dt>Array-Erzeugung</dt></dl>
<div class="mw-highlight mw-highlight-lang-numpy mw-content-ltr" dir="ltr"><pre><span></span><span class="o">&gt;&gt;&gt;</span> <span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="kp">array</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">])</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">x</span>
<span class="kp">array</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">])</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">y</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="kp">arange</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> <span class="c1"># analog zu Python's y = [i for i in range(10)], nur wird ein Array statt einer Liste generiert</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">y</span>
<span class="kp">array</span><span class="p">([</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">6</span><span class="p">,</span> <span class="mi">7</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="mi">9</span><span class="p">])</span>
</pre></div>
<dl><dt>Basic operations</dt></dl>
<div class="mw-highlight mw-highlight-lang-numpy mw-content-ltr" dir="ltr"><pre><span></span><span class="o">&gt;&gt;&gt;</span> <span class="n">a</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="kp">array</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">6</span><span class="p">])</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">b</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="kp">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">4</span><span class="p">)</span> <span class="c1"># erzeugt vier äquidistante Werte im Intervall [0,2]</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">c</span> <span class="o">=</span> <span class="n">a</span> <span class="o">-</span> <span class="n">b</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">c</span>
<span class="kp">array</span><span class="p">([</span> <span class="mf">1.</span> <span class="p">,</span> <span class="mf">1.33333333</span><span class="p">,</span> <span class="mf">1.66666667</span><span class="p">,</span> <span class="mf">4.</span> <span class="p">])</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">a</span><span class="o">**</span><span class="mi">2</span> <span class="c1"># Python Operatoren können direkt auf Arrays angewandt werden</span>
<span class="kp">array</span><span class="p">([</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">9</span><span class="p">,</span> <span class="mi">36</span><span class="p">])</span>
</pre></div>
<dl><dt>Universelle Funktionen</dt></dl>
<div class="mw-highlight mw-highlight-lang-numpy mw-content-ltr" dir="ltr"><pre><span></span><span class="o">&gt;&gt;&gt;</span> <span class="n">a</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="kp">linspace</span><span class="p">(</span><span class="o">-</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">pi</span><span class="p">,</span> <span class="mi">100</span><span class="p">)</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">b</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="kp">sin</span><span class="p">(</span><span class="n">a</span><span class="p">)</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">c</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="kp">cos</span><span class="p">(</span><span class="n">a</span><span class="p">)</span>
</pre></div>
<dl><dt>Lineare Algebra</dt></dl>
<div class="mw-highlight mw-highlight-lang-numpy mw-content-ltr" dir="ltr"><pre><span></span><span class="o">&gt;&gt;&gt;</span> <span class="kn">from</span><span class="w"> </span><span class="nn">numpy.random</span><span class="w"> </span><span class="kn">import</span> <span class="n">rand</span>
<span class="o">&gt;&gt;&gt;</span> <span class="kn">from</span><span class="w"> </span><span class="nn">numpy.linalg</span><span class="w"> </span><span class="kn">import</span> <span class="kp">solve</span><span class="p">,</span> <span class="kp">inv</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">a</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="kp">array</span><span class="p">([[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">],</span> <span class="p">[</span><span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mf">6.7</span><span class="p">],</span> <span class="p">[</span><span class="mi">5</span><span class="p">,</span> <span class="mf">9.0</span><span class="p">,</span> <span class="mi">5</span><span class="p">]])</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">a</span><span class="o">.</span><span class="kp">transpose</span><span class="p">()</span>
<span class="kp">array</span><span class="p">([[</span><span class="mf">1.</span> <span class="p">,</span> <span class="mf">3.</span> <span class="p">,</span> <span class="mf">5.</span> <span class="p">],</span>
<span class="p">[</span> <span class="mf">2.</span> <span class="p">,</span> <span class="mf">4.</span> <span class="p">,</span> <span class="mf">9.</span> <span class="p">],</span>
<span class="p">[</span> <span class="mf">3.</span> <span class="p">,</span> <span class="mf">6.7</span><span class="p">,</span> <span class="mf">5.</span> <span class="p">]])</span>
<span class="o">&gt;&gt;&gt;</span> <span class="kp">inv</span><span class="p">(</span><span class="n">a</span><span class="p">)</span>
<span class="kp">array</span><span class="p">([[</span><span class="o">-</span><span class="mf">2.27683616</span><span class="p">,</span> <span class="mf">0.96045198</span><span class="p">,</span> <span class="mf">0.07909605</span><span class="p">],</span>
<span class="p">[</span> <span class="mf">1.04519774</span><span class="p">,</span> <span class="o">-</span><span class="mf">0.56497175</span><span class="p">,</span> <span class="mf">0.1299435</span> <span class="p">],</span>
<span class="p">[</span> <span class="mf">0.39548023</span><span class="p">,</span> <span class="mf">0.05649718</span><span class="p">,</span> <span class="o">-</span><span class="mf">0.11299435</span><span class="p">]])</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">b</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="kp">array</span><span class="p">([</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">])</span>
<span class="o">&gt;&gt;&gt;</span> <span class="kp">solve</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span> <span class="c1"># Löst die Gleichung ax = b</span>
<span class="kp">array</span><span class="p">([</span><span class="o">-</span><span class="mf">4.83050847</span><span class="p">,</span> <span class="mf">2.13559322</span><span class="p">,</span> <span class="mf">1.18644068</span><span class="p">])</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">c</span> <span class="o">=</span> <span class="n">rand</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span> <span class="c1"># Erzeugt eine zufällige 3x3 Matrix mit Werten im Intervall [0,1]</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">c</span>
<span class="kp">array</span><span class="p">([[</span><span class="mf">0.3242542</span> <span class="p">,</span> <span class="mf">0.94330798</span><span class="p">,</span> <span class="mf">0.27474668</span><span class="p">],</span>
<span class="p">[</span><span class="mf">0.45979412</span><span class="p">,</span> <span class="mf">0.39204496</span><span class="p">,</span> <span class="mf">0.58138993</span><span class="p">],</span>
<span class="p">[</span><span class="mf">0.66361452</span><span class="p">,</span> <span class="mf">0.90350118</span><span class="p">,</span> <span class="mf">0.65898373</span><span class="p">]])</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">np</span><span class="o">.</span><span class="kp">dot</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span> <span class="c1"># Punkt-Produkt/Skalarprodukt der Matrizen</span>
<span class="kp">array</span><span class="p">([[</span> <span class="mf">3.23468601</span><span class="p">,</span> <span class="mf">4.43790144</span><span class="p">,</span> <span class="mf">3.41447772</span><span class="p">],</span>
<span class="p">[</span> <span class="mf">7.25815638</span><span class="p">,</span> <span class="mf">10.45156168</span><span class="p">,</span> <span class="mf">7.56499072</span><span class="p">],</span>
<span class="p">[</span> <span class="mf">9.07749071</span><span class="p">,</span> <span class="mf">12.76245045</span><span class="p">,</span> <span class="mf">9.9011614</span> <span class="p">]])</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">a</span> <span class="o">@</span> <span class="n">c</span> <span class="c1"># Möglich ab Python 3.5 und NumPy 1.10</span>
<span class="kp">array</span><span class="p">([[</span> <span class="mf">3.23468601</span><span class="p">,</span> <span class="mf">4.43790144</span><span class="p">,</span> <span class="mf">3.41447772</span><span class="p">],</span>
<span class="p">[</span> <span class="mf">7.25815638</span><span class="p">,</span> <span class="mf">10.45156168</span><span class="p">,</span> <span class="mf">7.56499072</span><span class="p">],</span>
<span class="p">[</span> <span class="mf">9.07749071</span><span class="p">,</span> <span class="mf">12.76245045</span><span class="p">,</span> <span class="mf">9.9011614</span> <span class="p">]])</span>
</pre></div>
<dl><dt>Integration in OpenCV</dt></dl>
<div class="mw-highlight mw-highlight-lang-numpy mw-content-ltr" dir="ltr"><pre><span></span><span class="o">&gt;&gt;&gt;</span> <span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="o">&gt;&gt;&gt;</span> <span class="kn">import</span><span class="w"> </span><span class="nn">cv2</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">r</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="kp">reshape</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="kp">arange</span><span class="p">(</span><span class="mi">256</span><span class="o">*</span><span class="mi">256</span><span class="p">)</span><span class="o">%</span><span class="mi">256</span><span class="p">,(</span><span class="mi">256</span><span class="p">,</span><span class="mi">256</span><span class="p">))</span> <span class="c1"># 256x256 Pixel Array mit horizontalem Verlauf von 0 bis 255 für den roten Farbkanal</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">g</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="kp">zeros_like</span><span class="p">(</span><span class="n">r</span><span class="p">)</span> <span class="c1"># Array selber Größe und selbem Datentyp wie r aber gefüllt mit Nullen für den grünen Farbkanal</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">b</span> <span class="o">=</span> <span class="n">r</span><span class="o">.</span><span class="n">T</span> <span class="c1"># Das transponierte r Array wird als vertikaler Verlauf des blauen Farbkanals verwendet.</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">cv2</span><span class="o">.</span><span class="n">imwrite</span><span class="p">(</span><span class="s1">'gradients.png'</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="kp">dstack</span><span class="p">([</span><span class="n">b</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">r</span><span class="p">]))</span> <span class="c1"># OpenCV interpretiert Bilder in BGR, das in dritter Dimension gestapelte Array wird als 8bit RGB PNG-Datei 'gradients.png' gespeichert</span>
<span class="kc">True</span>
</pre></div>
<dl><dt>Nächste-Nachbar-Suche&nbsp;– Python-Variante und vektorisierte NumPy-Alternative</dt></dl>
<div class="mw-highlight mw-highlight-lang-numpy mw-content-ltr" dir="ltr"><pre><span></span><span class="o">&gt;&gt;&gt;</span> <span class="c1"># # # Python Variante mit einer Dictionary Comprehension # # #</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">points</span> <span class="o">=</span> <span class="p">[[</span><span class="mi">9</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">8</span><span class="p">],[</span><span class="mi">4</span><span class="p">,</span><span class="mi">7</span><span class="p">,</span><span class="mi">2</span><span class="p">],[</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="mi">4</span><span class="p">],[</span><span class="mi">5</span><span class="p">,</span><span class="mi">6</span><span class="p">,</span><span class="mi">9</span><span class="p">],[</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">7</span><span class="p">],[</span><span class="mi">8</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">7</span><span class="p">],[</span><span class="mi">0</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">2</span><span class="p">],[</span><span class="mi">7</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">0</span><span class="p">],[</span><span class="mi">6</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">],[</span><span class="mi">2</span><span class="p">,</span><span class="mi">9</span><span class="p">,</span><span class="mi">6</span><span class="p">]]</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">qPoint</span> <span class="o">=</span> <span class="p">[</span><span class="mi">4</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">3</span><span class="p">]</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">edistanz</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">:</span> <span class="nb">sum</span><span class="p">((</span><span class="n">a1</span><span class="o">-</span><span class="n">b1</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span> <span class="k">for</span> <span class="n">a1</span><span class="p">,</span><span class="n">b1</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">))</span><span class="o">**</span><span class="mf">0.5</span> <span class="c1"># Lambda-Funktion zur Berechnung der Euklidischen Distanz von zwei Vektoren.</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">distanzen</span> <span class="o">=</span> <span class="p">{</span><span class="n">edistanz</span><span class="p">(</span><span class="n">i</span><span class="p">,</span><span class="n">qPoint</span><span class="p">):</span><span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">points</span><span class="p">}</span> <span class="c1"># Berechnet alle Euklidischen Distanzen mit einer Dictionary Comprehension.</span>
<span class="o">&gt;&gt;&gt;</span> <span class="nb">print</span><span class="p">(</span><span class="s1">'Nächster Punkt zu q: '</span><span class="p">,</span><span class="nb">min</span><span class="p">(</span><span class="n">distanzen</span><span class="o">.</span><span class="n">items</span><span class="p">())[</span><span class="mi">1</span><span class="p">])</span>
<span class="n">Nächster</span> <span class="n">Punkt</span> <span class="n">zu</span> <span class="n">q</span><span class="p">:</span> <span class="p">[</span><span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">4</span><span class="p">]</span>
<span class="o">&gt;&gt;&gt;</span>
<span class="o">&gt;&gt;&gt;</span>
<span class="o">&gt;&gt;&gt;</span> <span class="c1"># # # Äquivalente NumPy Vektorisierung # # #</span>
<span class="o">&gt;&gt;&gt;</span> <span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">points</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="kp">array</span><span class="p">([[</span><span class="mi">9</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">8</span><span class="p">],[</span><span class="mi">4</span><span class="p">,</span><span class="mi">7</span><span class="p">,</span><span class="mi">2</span><span class="p">],[</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="mi">4</span><span class="p">],[</span><span class="mi">5</span><span class="p">,</span><span class="mi">6</span><span class="p">,</span><span class="mi">9</span><span class="p">],[</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">7</span><span class="p">],[</span><span class="mi">8</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">7</span><span class="p">],[</span><span class="mi">0</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">2</span><span class="p">],[</span><span class="mi">7</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">0</span><span class="p">],[</span><span class="mi">6</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">],[</span><span class="mi">2</span><span class="p">,</span><span class="mi">9</span><span class="p">,</span><span class="mi">6</span><span class="p">]])</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">qPoint</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="kp">array</span><span class="p">([</span><span class="mi">4</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">3</span><span class="p">])</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">minIdx</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="kp">argmin</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">norm</span><span class="p">(</span><span class="n">points</span><span class="o">-</span><span class="n">qPoint</span><span class="p">,</span><span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">))</span> <span class="c1"># berechne alle Euklidischen Distanzen auf einmal und bestimme den Index des kleinsten Werts</span>
<span class="o">&gt;&gt;&gt;</span> <span class="nb">print</span> <span class="s1">'Nächster Punkt zu q: '</span><span class="p">,</span> <span class="n">points</span><span class="p">[</span><span class="n">minIdx</span><span class="p">]</span>
<span class="n">Nächster</span> <span class="n">Punkt</span> <span class="n">zu</span> <span class="n">q</span><span class="p">:</span> <span class="p">[</span><span class="mi">3</span> <span class="mi">4</span> <span class="mi">4</span><span class="p">]</span>
</pre></div>
<div class="mw-heading mw-heading2"><h2 id="Geschichte">Geschichte</h2></div>
<p>Die Programmiersprache Python war ursprünglich nicht für numerische Berechnungen optimiert, erlangte aber schnell große Bekanntheit im Anwendungsbereich des <a href="Wissenschaftliches_Rechnen" title="Wissenschaftliches Rechnen">Wissenschaftlichen Rechnens</a>. So wurde 1995 die <a href="Interessengemeinschaft" title="Interessengemeinschaft">Interessengemeinschaft</a> <i>matrix-sig</i> gegründet, die das Ziel verfolgte, ein einheitliches Paket zur Array-Handhabung zu definieren. Eines der Mitglieder war Python-Autor <a href="Guido_van_Rossum" title="Guido van Rossum">Guido van Rossum</a>, welcher Syntaxerweiterungen, besonders die Indexierung, direkt in Python einpflegte, um die Verwendung von Arrays zu vereinfachen.<sup id="cite_ref-millman_11-0" class="reference"><a href="#cite_note-millman-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> Die erste Implementierung eines Matrizenpakets wurde von Jim Fulton entwickelt, die später von Jim Hugunin generalisiert und als <i>Numeric</i><sup id="cite_ref-millman_11-1" class="reference"><a href="#cite_note-millman-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> (teilweise auch <i>Numerical Python Extensions</i>) bekannt wurde, dem Vorläufer von NumPy.<sup id="cite_ref-cise2_12-0" class="reference"><a href="#cite_note-cise2-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-numerical_13-0" class="reference"><a href="#cite_note-numerical-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> Hugunin war damals Student am <a href="Massachusetts_Institute_of_Technology" title="Massachusetts Institute of Technology">MIT</a>,<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>13.1<span class="cite-bracket">]</span></a></sup>, verließ das Projekt aber 1997 um weiter an <a href="Jython" title="Jython">JPython</a> zu arbeiten.<sup id="cite_ref-millman_11-2" class="reference"><a href="#cite_note-millman-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> Paul Dubois vom <a href="Lawrence_Livermore_National_Laboratory" title="Lawrence Livermore National Laboratory">LLNL</a> übernahm die Leitung des Projekts.<sup id="cite_ref-14-1" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>13.1<span class="cite-bracket">]</span></a></sup> Weitere Beitragende der ersten Stunde waren außerdem David Ascher, Konrad Hinsen und Travis Oliphant.<sup id="cite_ref-14-2" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>13.1<span class="cite-bracket">]</span></a></sup>
</p><p>Das Paket Numarray wurde als Alternative zu Numeric entwickelt, die mehr Flexibilität bieten sollte.<sup id="cite_ref-cise_5-2" class="reference"><a href="#cite_note-cise-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>
Beide Pakete gelten inzwischen als veraltet und werden nicht mehr weiterentwickelt.<sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> Numarray and Numeric hatten jeweils ihre Stärken und Schwächen und wurden eine Zeit lang noch parallel für unterschiedliche Anwendungsbereiche eingesetzt. Die letzte Version (v24.2) von Numeric erschien am 11.&nbsp;November 2005, die letzte (v1.5.2) von Numarray am 24.&nbsp;August 2006.<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup>
</p><p>Anfang 2005 begann Travis Oliphant den Funktionsumfang von Numarray in Numeric zu übertragen, um die Entwicklergemeinschaft auf ein vereinigtes Projekt zu konzentrieren; das Ergebnis wurde 2005 als NumPy 1.0 veröffentlicht.<sup id="cite_ref-cise_5-3" class="reference"><a href="#cite_note-cise-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>
Dieses neue Projekt war außerdem Teil von SciPy, wurde aber auch separat als NumPy angeboten um zu vermeiden, dass das große SciPy-Paket installiert werden muss nur, um mit Array-Objekten arbeiten zu können.
Von Version 1.5.0 an kann NumPy auch mit Python 3 verwendet werden.<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup>
</p><p>2011 begann die Entwicklung einer NumPy-<a href="Programmierschnittstelle" title="Programmierschnittstelle">API</a> für <a href="PyPy" title="PyPy">PyPy</a>.<sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> Bislang wird allerdings noch nicht der gesamte NumPy-Funktionsumfang unterstützt.<sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup>
</p><p>Am 15. November 2017 gab das Team rund um NumPy bekannt, ab dem 1. Januar 2019 neue Funktionen nur noch für Python 3 bereitstellen zu wollen, während für Python 2 nur noch Fehlerbereinigungen erscheinen werden. Ab dem 1. Januar 2020 würden dann keine weiteren Aktualisierungen mehr für Python 2 folgen.<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-21" class="reference"><a href="#cite_note-21"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Siehe_auch">Siehe auch</h2></div>
<ul><li><a href="SciPy" title="SciPy">SciPy</a></li>
<li><a href="Matplotlib" title="Matplotlib">Matplotlib</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Literatur">Literatur</h2></div>
<ul><li><span class="book">Eli Bressert: <cite class="lang" lang="en" dir="auto" style="font-style:italic">SciPy and NumPy: An Overview for Developers</cite>. <a href="O%E2%80%99Reilly_Verlag" title="O’Reilly Verlag">O’Reilly Media</a>, 2012, ISBN 978-1-4493-0546-8 (englisch).<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rfr_id=info:sid/de.wikipedia.org:NumPy&amp;rft.au=Eli%26%2332%3BBressert&amp;rft.btitle=SciPy+and+NumPy%3A+An+Overview+for+Developers&amp;rft.date=2012&amp;rft.genre=book&amp;rft.isbn=9781449305468&amp;rft.pub=O%E2%80%99Reilly+Media" style="display:none">&nbsp;</span></span></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<div class="sisterproject" style="margin:0.1em 0 0 0;"><div class="noresize noviewer" style="display:inline-block; line-height:10px; min-width:1.6em; text-align:center;" aria-hidden="true" role="presentation"><span class="mw-default-size" typeof="mw:File"><span title="Commons"></span></span></div><b><span class=""><a class="external text" href="https://commons.wikimedia.org/wiki/Category:NumPy?uselang=de"><span lang="en">Commons</span>: NumPy</a></span></b>&nbsp;– Sammlung von Bildern, Videos und Audiodateien</div>
<ul><li><a rel="nofollow" class="external text" href="https://numpy.org/">Offizielle Website</a></li>
<li><a rel="nofollow" class="external text" href="https://scipy.github.io/old-wiki/pages/History_of_SciPy">Die Entstehung von NumPy</a> (englisch)</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-_75e60f9e614fc8c5-1"><span class="mw-cite-backlink"><a href="#cite_ref-_75e60f9e614fc8c5_1-0">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://github.com/numpy/numpy/releases/tag/v2.3.5"><cite style="font-style:italic"><span lang="en">Release 2.3.5</span></cite>.</a> 16.&nbsp;November 2025 (abgerufen am 18.&nbsp;November 2025).</span>
</li>
<li id="cite_note-_0155ee18ddc18b74-2"><span class="mw-cite-backlink"><a href="#cite_ref-_0155ee18ddc18b74_2-0">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://www.openhub.net/p/numpy/analyses/latest/languages_summary"><cite style="font-style:italic"><span lang="en">The numpy Open Source Project on Open Hub: Languages Page</span></cite>.</a> In: <cite style="font-style:italic">Open Hub</cite>. (abgerufen am 14.&nbsp;Juli 2018).</span>
</li>
<li id="cite_note-_8e9d8db5bb94b487-3"><span class="mw-cite-backlink"><a href="#cite_ref-_8e9d8db5bb94b487_3-0">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://github.com/numpy/numpy/blob/master/LICENSE.txt"><cite style="font-style:italic">github.com</cite>.</a> (abgerufen am 1.&nbsp;September 2016).</span>
</li>
<li id="cite_note-Nature-4"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-Nature_4-0">a</a></sup> <sup><a href="#cite_ref-Nature_4-1">b</a></sup> <sup><a href="#cite_ref-Nature_4-2">c</a></sup></span> <span class="reference-text">
Charles R. Harris, K. Jarrod Millman, Stéfan J. van, Ralf Gommers, Pauli Virtanen, David Cournapeau, Eric Wieser, Julian Taylor, Sebastian Berg, Nathaniel J. Smith, Robert Kern, Matti Picus, Stephan Hoyer, Marten H. van, Matthew Brett, Allan Haldane, Jaime Fernández del, Mark Wiebe, Pearu Peterson, Pierre Gérard-Marchant, Kevin Sheppard, Tyler Reddy, Warren Weckesser, Hameer Abbasi, Christoph Gohlke, Travis E. Oliphant: <cite class="lang" lang="en" dir="auto" style="font-style:italic">Array programming with NumPy</cite>. In: <cite class="lang" lang="en" dir="auto" style="font-style:italic">Nature</cite>. 585. Jahrgang, <span style="white-space:nowrap">Nr.<span style="display:inline-block;width:.2em">&nbsp;</span>7825</span>, 16.&nbsp;September 2020, <span style="white-space:nowrap">S.<span style="display:inline-block;width:.2em">&nbsp;</span>357–362</span>, <a href="Digital_Object_Identifier" title="Digital Object Identifier">doi</a>:<span class="uri-handle" style="white-space:nowrap"><a rel="nofollow" class="external text" href="https://doi.org/10.1038/s41586-020-2649-2">10.1038/s41586-020-2649-2</a></span> (englisch, <a rel="nofollow" class="external text" href="https://www.nature.com/articles/s41586-020-2649-2">nature.com</a>).<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rfr_id=info:sid/de.wikipedia.org:NumPy&amp;rft.atitle=Array+programming+with+NumPy&amp;rft.au=Charles+R.%26%2332%3BHarris%2C%26%2332%3BK.+Jarrod%26%2332%3BMillman%2C%26%2332%3BSt%C3%A9fan+J.%26%2332%3Bvan%2C+...&amp;rft.date=2020-09-16&amp;rft.doi=10.1038%2Fs41586-020-2649-2&amp;rft.genre=journal&amp;rft.issue=7825&amp;rft.jtitle=Nature&amp;rft.pages=357-362&amp;rft.volume=585.+Jahrgang" style="display:none">&nbsp;</span></span>
</li>
<li id="cite_note-cise-5"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-cise_5-0">a</a></sup> <sup><a href="#cite_ref-cise_5-1">b</a></sup> <sup><a href="#cite_ref-cise_5-2">c</a></sup> <sup><a href="#cite_ref-cise_5-3">d</a></sup></span> <span class="reference-text">Stéfan van der Walt, S. Chris Colbert und Gaël Varoquaux: <cite class="lang" lang="en" dir="auto" style="font-style:italic">The NumPy array: a structure for efficient numerical computation</cite>. In: <cite class="lang" lang="en" dir="auto" style="font-style:italic">Computing in Science and Engineering</cite>. IEEE, 2011, <a href="ArXiv" title="ArXiv">arxiv</a>:<a rel="nofollow" class="external text" href="https://arxiv.org/abs/1102.1523">1102.1523</a> (englisch).<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rfr_id=info:sid/de.wikipedia.org:NumPy&amp;rft.atitle=The+NumPy+array%3A+a+structure+for+efficient+numerical+computation&amp;rft.au=St%C3%A9fan+van+der+Walt%2C+S.+Chris+Colbert+und+Ga%C3%ABl+Varoquaux&amp;rft.btitle=Computing+in+Science+and+Engineering&amp;rft.date=2011&amp;rft.genre=book&amp;rft.pub=IEEE" style="display:none">&nbsp;</span></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><a href="#cite_ref-6">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="http://blaze.readthedocs.io/"><i>Blaze Ecosystem Docs.</i></a> In: <i>Read the Docs.</i><span class="Abrufdatum"> Abgerufen am 6.&nbsp;Januar 2016</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ANumPy&amp;rft.title=Blaze+Ecosystem+Docs&amp;rft.description=Blaze+Ecosystem+Docs&amp;rft.identifier=&amp;rft.date=&amp;rft.language=en">&nbsp;</span></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><a href="#cite_ref-7">↑</a></span> <span class="reference-text"><span class="cite">Francesc Alted: <a rel="nofollow" class="external text" href="https://github.com/pydata/numexpr"><i>numexpr.</i></a><span class="Abrufdatum"> Abgerufen am 8.&nbsp;März 2014</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ANumPy&amp;rft.title=numexpr&amp;rft.description=numexpr&amp;rft.identifier=&amp;rft.creator=Francesc+Alted&amp;rft.date=&amp;rft.language=en">&nbsp;</span></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><a href="#cite_ref-8">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="http://numba.pydata.org/"><i>Numba.</i></a><span class="Abrufdatum"> Abgerufen am 6.&nbsp;Januar 2016</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ANumPy&amp;rft.title=Numba&amp;rft.description=Numba&amp;rft.identifier=&amp;rft.date=&amp;rft.language=en">&nbsp;</span></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><a href="#cite_ref-9">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://dask.org/">Dask</a>, auf dask.org</span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><a href="#cite_ref-10">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://jax.readthedocs.io">JAX reference documentation</a>, auf jax.readthedocs.io</span>
</li>
<li id="cite_note-millman-11"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-millman_11-0">a</a></sup> <sup><a href="#cite_ref-millman_11-1">b</a></sup> <sup><a href="#cite_ref-millman_11-2">c</a></sup></span> <span class="reference-text">K. Jarrod Millman, Michael Aivazis: <cite class="lang" lang="en" dir="auto" style="font-style:italic">Python for Scientists and Engineers</cite>. In: <cite class="lang" lang="en" dir="auto" style="font-style:italic">Computing in Science and Engineering</cite>. 13. Jahrgang, <span style="white-space:nowrap">Nr.<span style="display:inline-block;width:.2em">&nbsp;</span>2</span>, 2011, <span style="white-space:nowrap">S.<span style="display:inline-block;width:.2em">&nbsp;</span>9–12</span> (englisch, <a rel="nofollow" class="external text" href="http://www.computer.org/csdl/mags/cs/2011/02/mcs2011020009.html">computer.org</a>).<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rfr_id=info:sid/de.wikipedia.org:NumPy&amp;rft.atitle=Python+for+Scientists+and+Engineers&amp;rft.au=K.+Jarrod%26%2332%3BMillman%2C%26%2332%3BMichael%26%2332%3BAivazis&amp;rft.date=2011&amp;rft.genre=journal&amp;rft.issue=2&amp;rft.jtitle=Computing+in+Science+and+Engineering&amp;rft.pages=9-12&amp;rft.volume=13.+Jahrgang" style="display:none">&nbsp;</span></span>
</li>
<li id="cite_note-cise2-12"><span class="mw-cite-backlink"><a href="#cite_ref-cise2_12-0">↑</a></span> <span class="reference-text">Travis Oliphant: <cite class="lang" lang="en" dir="auto" style="font-style:italic">Python for Scientific Computing</cite>. In: <cite class="lang" lang="en" dir="auto" style="font-style:italic">Computing in Science and Engineering</cite>. 2007 (englisch, <a rel="nofollow" class="external text" href="https://www.h2desk.com/blog/wp-content/uploads/oliphant-python_scientific.pdf">h2desk.com</a> [PDF]).<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rfr_id=info:sid/de.wikipedia.org:NumPy&amp;rft.atitle=Python+for+Scientific+Computing&amp;rft.au=Travis+Oliphant&amp;rft.btitle=Computing+in+Science+and+Engineering&amp;rft.date=2007&amp;rft.genre=book" style="display:none">&nbsp;</span></span>
</li>
<li id="cite_note-numerical-13"><span class="mw-cite-backlink"><a href="#cite_ref-numerical_13-0">↑</a></span> <span class="reference-text"><span class="cite">David Ascher, Paul F. Dubois, Konrad Hinsen, Jim Hugunin, Travis Oliphant: <a rel="nofollow" class="external text" href="http://www.cs.mcgill.ca/~hv/articles/Numerical/numpy.pdf"><i>Numerical Python.</i></a> 1999,<span class="Abrufdatum"> abgerufen am 6.&nbsp;Januar 2016</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ANumPy&amp;rft.title=Numerical+Python&amp;rft.description=Numerical+Python&amp;rft.identifier=&amp;rft.creator=David+Ascher%2C+Paul+F.+Dubois%2C+Konrad+Hinsen%2C+Jim+Hugunin%2C+Travis+Oliphant&amp;rft.date=1999&amp;rft.language=en">&nbsp;</span></span>
<ol class="mw-subreference-list"><li id="cite_note-14"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-14">a</a></sup> <sup><a href="#cite_ref-14-1">b</a></sup> <sup><a href="#cite_ref-14-2">c</a></sup></span> <span class="reference-text">S. 10</span>
</li>
</ol></li>
<li id="cite_note-15"><span class="mw-cite-backlink"><a href="#cite_ref-15">↑</a></span> <span class="reference-text"><span style="display:none"><a rel="nofollow" class="external text" href="http://deadurl.invalid/http://www.stsci.edu/resources/software_hardware/numarray">@1</a></span><span style="display:none"><a rel="nofollow" class="external text" href="http://www.stsci.edu/resources/software_hardware/numarray">@2</a></span><span style="display:none">Vorlage:Toter Link/www.stsci.edu</span><a rel="nofollow" class="external text" href="http://www.stsci.edu/resources/software_hardware/numarray">Numarray Homepage</a> <small>(Seite dauerhaft nicht mehr abrufbar, festgestellt im Februar 2024. <a rel="nofollow" class="external text" href="http://timetravel.mementoweb.org/list/2010/http://www.stsci.edu/resources/software_hardware/numarray">Suche in Webarchiven</a>)</small></span>
</li>
<li id="cite_note-16"><span class="mw-cite-backlink"><a href="#cite_ref-16">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://sourceforge.net/projects/numpy/files/"><i>NumPy Sourceforge Files.</i></a><span class="Abrufdatum"> Abgerufen am 6.&nbsp;Januar 2016</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ANumPy&amp;rft.title=NumPy+Sourceforge+Files&amp;rft.description=NumPy+Sourceforge+Files&amp;rft.identifier=&amp;rft.date=&amp;rft.language=en">&nbsp;</span></span>
</li>
<li id="cite_note-17"><span class="mw-cite-backlink"><a href="#cite_ref-17">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://sourceforge.net/projects/numpy/files/NumPy/1.5.0/NOTES.txt/view"><i>NumPy 1.5.0 Release Notes.</i></a><span class="Abrufdatum"> Abgerufen am 6.&nbsp;Januar 2016</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ANumPy&amp;rft.title=NumPy+1.5.0+Release+Notes&amp;rft.description=NumPy+1.5.0+Release+Notes&amp;rft.identifier=&amp;rft.date=&amp;rft.language=en">&nbsp;</span></span>
</li>
<li id="cite_note-18"><span class="mw-cite-backlink"><a href="#cite_ref-18">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="http://morepypy.blogspot.com/2011/10/numpy-funding-and-status-update.html"><i>PyPy Status Blog: Numpy funding and status update.</i></a><span class="Abrufdatum"> Abgerufen am 6.&nbsp;Januar 2016</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ANumPy&amp;rft.title=PyPy+Status+Blog%3A+Numpy+funding+and+status+update&amp;rft.description=PyPy+Status+Blog%3A+Numpy+funding+and+status+update&amp;rft.identifier=&amp;rft.date=&amp;rft.language=en">&nbsp;</span></span>
</li>
<li id="cite_note-19"><span class="mw-cite-backlink"><a href="#cite_ref-19">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="http://buildbot.pypy.org/numpy-status/latest.html"><i>NumPyPy Status.</i></a><span class="Abrufdatum"> Abgerufen am 6.&nbsp;Januar 2016</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ANumPy&amp;rft.title=NumPyPy+Status&amp;rft.description=NumPyPy+Status&amp;rft.identifier=&amp;rft.date=&amp;rft.language=en">&nbsp;</span></span>
</li>
<li id="cite_note-20"><span class="mw-cite-backlink"><a href="#cite_ref-20">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://github.com/python3statement/python3statement.github.io/pull/91"><i>Add NumPy · python3statement/python3statement.github.io.</i></a> In: <i>GitHub.</i><span class="Abrufdatum"> Abgerufen am 7.&nbsp;Juli 2018</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ANumPy&amp;rft.title=Add+NumPy+%C2%B7+python3statement%2Fpython3statement.github.io&amp;rft.description=Add+NumPy+%C2%B7+python3statement%2Fpython3statement.github.io&amp;rft.identifier=&amp;rft.date=&amp;rft.language=en">&nbsp;</span></span>
</li>
<li id="cite_note-21"><span class="mw-cite-backlink"><a href="#cite_ref-21">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://python3statement.org/">Moving to require Python 3 (englisch)</a>, auf python3statement.org, abgerufen am 17. Oktober 2018</span>
</li>
<li id="cite_note-22"><span class="mw-cite-backlink"><a href="#cite_ref-22">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20180708015441/https://docs.scipy.org/doc/numpy/neps/dropping-python2.7-proposal.html"><i>Plan for dropping Python 2.7 support.</i></a> In: <i>Scipy.org.</i> Archiviert vom <style data-mw-deduplicate="TemplateStyles:r250917974">
/* start https://de.wikipedia.org/ */


.mw-parser-output .dewiki-iconexternal>a{background-position:center right!important;background-repeat:no-repeat!important}body.skin-minerva .mw-parser-output .dewiki-iconexternal>a{background-image:url("./_mw_/OOjs_UI_icon_external-link-ltr-progressive.svg")!important;background-size:10px!important;padding-right:13px!important}body.skin-timeless .mw-parser-output .dewiki-iconexternal>a,body.skin-monobook .mw-parser-output .dewiki-iconexternal>a{background-image:url("./_mw_/MediaWiki_external_link_icon.svg")!important;padding-right:13px!important}body.skin-vector .mw-parser-output .dewiki-iconexternal>a{background-image:url("./_mw_/Link.ernal-small-ltr-progressive.svg")!important;background-size:0.857em!important;padding-right:1em!important}


/* end https://de.wikipedia.org/ */
</style><span class="dewiki-iconexternal"><a class="external text" href="https://redirecter.toolforge.org/?url=https%3A%2F%2Fdocs.scipy.org%2Fdoc%2Fnumpy%2Fneps%2Fdropping-python2.7-proposal.html">Original</a></span> am <span style="white-space:nowrap;">8.&nbsp;Juli 2018</span><span>;</span><span class="Abrufdatum"> abgerufen am 7.&nbsp;Juli 2018</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ANumPy&amp;rft.title=Plan+for+dropping+Python+2.7+support&amp;rft.description=Plan+for+dropping+Python+2.7+support&amp;rft.identifier=https%3A%2F%2Fweb.archive.org%2Fweb%2F20180708015441%2Fhttps%3A%2F%2Fdocs.scipy.org%2Fdoc%2Fnumpy%2Fneps%2Fdropping-python2.7-proposal.html&amp;rft.date=&amp;rft.source=https://docs.scipy.org/doc/numpy/neps/dropping-python2.7-proposal.html&amp;rft.language=en">&nbsp;</span></span>
</li>
</ol></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2025-11-25" href="https://de.wikipedia.org/wiki/?title=NumPy&amp;oldid=261866310">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>